import Axios from 'axios'
import BalaBala from "@/methods/BalaBala"
import Token from "@/methods/Token"
import ErrorCode from "@/const/ErrorCode"

const axios = Axios.create({
  // baseURL: 'http://localhost:8066',
  baseURL: process.env.VUE_APP_BASE,
  withCredentials: true,
  timeout: 60 * 1000,
  // headers: {'X-Custom-Header': 'foobar'}
})

axios.interceptors.request.use(
  config => {
    // 这里写死一个token，你需要在这里取到你设置好的token的值
    const token = Token.get()
    if (token) {
      // 这里将token设置到headers中，header的key是Authorization，这个key值根据你的需要进行修改即可
      config.headers.token = token
    }
    return config
  },
  error => {
    return Promise.reject(error)
  })

/****** respone拦截器==>对响应做处理 ******/
axios.interceptors.response.use(
  response => {
    return response.data
  },
  error => {
    console.log(error.response)
    if (error.response) {
      switch (error.response.status) {
        case ErrorCode.not_logged:
          Token.remove()
          BalaBala.unLoginMessage()
          break
        //正确用法
        case ErrorCode.business:
        case ErrorCode.system:
          const result = error.response.data
          if (result) {
            // @ts-ignore
            BalaBala.error(result.errorMsg)
          }
          break
      }
      return Promise.reject(error.response)   // 返回接口返回的错误信息
    } else {
      BalaBala.systemErrorMsg()
    }
    return Promise.reject(error)
  }
)
export default axios
